package dao;

import java.io.Serializable;
import java.util.List;

import modelo.Localidad;
import modelo.Provincia;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import util.HibernateUtil;

public class LocalidadDao implements Serializable {

	private static final long serialVersionUID = -4441610365460169098L;

	private Session session;
	SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
	
	public LocalidadDao() {
		super();
	}
	
	public LocalidadDao(Session session, SessionFactory sessionFactory) {
		super();
		this.session = session;
		this.sessionFactory = sessionFactory;
	}

	public List<Localidad> obtenerLocalidades() {
		session=sessionFactory.openSession();
		
		Query query = session.createQuery("SELECT l FROM Localidad l");
		List<Localidad> l = query.list();
		
		session.close();
		
		return l;
	}

	public void guardarLocalidad(Localidad localidad) {
		session = sessionFactory.openSession();
		session.beginTransaction();
		session.saveOrUpdate(localidad);
		session.getTransaction().commit();
		session.close();
	}

	public List<Localidad> obtenerLocalidades(Provincia p) {
		session = sessionFactory.openSession();

		Query query = session.createQuery("from Localidad where idProvincia = :id ");
		query.setParameter("id", p.getIdProvincia());

		List<Localidad> list = query.list();
		
		return list;
	}

}
